package com.spzx.user.service;

import java.util.List;

import com.spzx.user.api.domain.UpdateUserLogin;
import com.spzx.user.domain.UserAddress;
import com.spzx.user.api.domain.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spzx.user.domain.UserBrowseHistory;
import com.spzx.user.domain.UserCollect;

/**
 * 会员信息Service接口
 *
 * @author atguigu
 * @date 2024-08-03
 */
public interface IUserInfoService extends IService<UserInfo>
{

    /**
     * 查询会员信息列表
     *
     * @param userInfo 会员信息
     * @return 会员信息集合
     */
    public List<UserInfo> selectUserInfoList(UserInfo userInfo);

    /**
     * 获取用户地址信息
     * @param userId 用户id
     * @return 用户地址信息列表
     */
    List<UserAddress> selectUserAddressList(Long userId);

    /**
     * 用户注册
     * @param userInfo
     */
    void register(UserInfo userInfo);

    /**
     * 用户登录
     * @param updateUserLogin
     * @return
     */
    Boolean updateUserLogin(UpdateUserLogin updateUserLogin);

    /**
     * 获取用户信息
     * @param username
     * @return
     */
    UserInfo selectUserByUserName(String username);

    /**
     * 判断商品是否收藏
     * @param skuId
     * @return
     */
    Boolean isCollect(Long skuId);

    /**
     * 收藏商品
     * @param skuId
     * @return
     */
    Boolean collect(Long skuId);

    /**
     * 取消收藏
     * @param skuId
     * @return
     */
    Boolean cancelCollect(Long skuId);

    /**
     * 用户收藏分页列表查询
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<UserCollect> userCollectList(Integer pageNum, Integer pageSize);

    /**
     * 商品浏览历史
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<UserBrowseHistory> userBrowseHistoryList(Integer pageNum, Integer pageSize);
}
